#ifndef ANIMATION_H
#define ANIMATION_H

#include "SFML/Graphics.hpp"

#define ANIM_STAND 0
#define ANIM_STAND_LEFT 1
#define ANIM_STAND_RIGHT 2
#define ANIM_RUN_LEFT 3
#define ANIM_RUN_RIGHT 4
#define ANIM_JUMP_LEFT 5
#define ANIM_JUMP_RIGHT 6
#define ANIM_FALL_LEFT 7
#define ANIM_FALL_RIGHT 8
#define ANIM_KICK_LEFT 9
#define ANIM_KICK_RIGHT 10
#define ANIM_CLIMB 11
#define ANIM_SWIM_LEFT 12
#define ANIM_SWIM_RIGHT 13

class Animation
{
public: 
    Animation(int animationId, int columnBegin, int rowBegin, int length, float time); 
	~Animation(); //The destructor -- no need to implement at this point since other variables are stack
    int getLength() const;
    int getRowBegin() const;
    int getColumnBegin() const;
    int getAnimationId() const;
    int getTime() const;

    void setLenght(const int length);
    void setRowBegin(const int rowBegin);
    void setColumnBegin(const int columnBegin);
    void setAnimationId(const int animationId);
    void setTime(const float time);
private:
    int animationId;
    int columnBegin;
    int rowBegin;
    int length;
    int time; //time for one cycle in secs
};

#endif